In certain programming languages, a heap may refer to an area of dynamically allocated computer memory that a program process may use to store data in some variable amount that may not be known until the program starts running. The program process may manage its allocated heap by requesting a block of the heap when needed, and returning or releasing the block when the block is not needed any longer. A memory leak may refer to a situation when the block no longer needed is not properly freed or de-allocated due to one or more causes, such as losing track of pointers to stored data objects.
Currently, compiler and debugger tools for analyzing computer programs during the compile and run-time may be run to determine the memory leak or a growth of the heap associated with each computer program. In the case of compiler and debugger tools for weakly typed programming languages, such as C, C++, etc., code-centric profiling of the heap, which associates a heap allocation site with its corresponding call graph signature, may be generated if a snapshot of the heap is requested.
Other features of the present embodiments will be apparent from the accompanying drawings and from the detailed description that follows.